package com.kt.common.clazz.field


/**
 * 这称为对象声明。并且它总是在 object 关键字后跟一个名称。 就像变量声明一样，对象声明不是一个表达式，不能用在赋值语句的右边。

对象声明的初始化过程是线程安全的并且在首次访问时进行。

如需引用该对象，我们直接使用其名称即可
 *
 * */

//单列类 ， 职能 StaticClassTest.doSomething()来使用 ，而不能通过StaticClassTest()来初始化类
//位于顶层或者是 object 声明 或 companion object 的一个成员
object StaticClassTest  {

    private const val SUBSYSTEM_DEPRECATED: String = "This subsystem is deprecated"

    fun doSomething(){
        println("object 类中的函数")

    }

    @Deprecated(SUBSYSTEM_DEPRECATED, ReplaceWith("println(\"object 类中的废弃函数\")"))
    fun doDeprecated(){
        println("object 类中的废弃函数")

    }
}